package QueueTest;

import java.util.*;

public class Test {
    public static void main(String[] args) {
        //使用列表实现的双端队列
        Deque<Integer> deque1 = new LinkedList<>();
        //使用数组实现的双端队列
        Deque<Integer> deque2 = new ArrayDeque<>();
        deque2.offerLast(1);
        deque2.offerLast(2);
        deque2.offerLast(5);
        System.out.println(deque2);//[1, 2, 5]


        //顺序栈
        Stack<Integer> stack = new Stack<>();
        //顺序栈
        //Deque 里面有栈的方法，也就是可以当做栈来使用
        //ArrayDeque 也实现 push pop
        Deque<Integer> stack2 = new ArrayDeque<>();
        //栈使用的时候，
        stack2.push(1);
        stack2.push(2);
        stack2.push(3);
        System.out.println(stack2);//[3, 2, 1]



    }
    public static void main3(String[] args) {
        //双端队列 ： 既可以进，也可以出
        Deque<Integer> deque = new LinkedList<>();

    }
    public static void main2(String[] args) {
        //双端队列
        Deque<Integer> deque = new LinkedList<>();
        //普通队列
        Queue<Integer> queue = new LinkedList<>();
        //链式栈
        LinkedList<Integer> stack = new LinkedList<>();
        //链表
        List<Integer> list = new LinkedList<>();
    }
    public static void main1(String[] args) {
    MyQueue myQueue = new MyQueue();

    myQueue.offer(1);
        myQueue.offer(2);
        myQueue.offer(3);
        myQueue.offer(4);
        System.out.println(myQueue.poll()); //1

        System.out.println(myQueue.peek()); //2
        System.out.println(myQueue.peek()); //2

    }
}
